home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 431_01 / rifs.doc < prev    next >
Text File  |  1994-10-01  |  14KB  |  346 lines

  1. RIFS --- Remote Installable File System
  2.  
  3. Acknowledgments
  4. ===============
  5.   I think this should go first because none of this would be possible
  6. without these people:
  7.  
  8.   Rob Warnock  <rpw3@sgi.com> 
  9.     I found code for the CRC-32 in the comp.compression FAQ, and it
  10.   is attributed to him.
  11.  
  12.   David Jurgens
  13.     Who wrote HelpPC. Everyone should have a copy of this. I think I
  14.   still have the first copy without updates because it went $hareware.
  15.   
  16.   Ralph Brown
  17.     OK, anyone who writes anything for MSDOS should probably thank
  18.   Mr. Brown. The constantly updated interrupt list on SIMTEL is
  19.   more information than any number of books.
  20.  
  21.   ..and..
  22.   Undocumented DOS
  23.     This was a VERY FRUSTRATING book!!! The second version is probably
  24.   better though. The IFS section (chapter 4) is incomplete. By using
  25.   both the book and source I managed to get enough information for
  26.   each function, but it was an absolute nightmare due to being incomplete.
  27.   The text did not fully describe the functions, so I had to constantly
  28.   refer to the source which was in cryptic pascal.
  29.     Still, the concepts are good and the book is worth reading.
  30.   
  31. Introduction
  32. ============
  33.  
  34.   This program provides a kind of ``mini-lan'' which links two computers
  35. through the serial port and allows users on one machine access to the
  36. resources on the other. This is currently limited to available disk
  37. drives (including CD-ROM and network drives).
  38.  
  39.   I restricted this to serial ports because I need to access a machine
  40. remotely (modem to modem instead of direct connections).
  41.  
  42.   Before writing this I poked around SIMTEL to see if anything similar
  43. was avaiable. Alas, no. Some things looked quite interesting, but nothing
  44. was exactly what I needed and much of it cost $. I am including source code
  45. for people who are interested. It is interesting because it shows (1) a 
  46. decent, interrupt driven serial unit, and (2) an installable file system
  47. based on the DOS 3.x + IFS specification (MSCDEX type systems).
  48.  
  49.   Finally, to those of you who say ``get dos 6.x, it has interlink!!.''
  50. Yes, this is good software. I was somewhat impressed. Unfortunatly, for
  51. some reason, the server takes 130K+ AND must be in control of the machine.
  52. This might be acceptable for file transfers, but that is about it.
  53.   
  54. Restrictions
  55. ============
  56.   * Don't sell copies of this product without contacting me. please.
  57.   * Always leave my name, and if you use any code in your programs
  58.     I would appreciate a note somewhere in the documentation that
  59.     it was based upon my code.
  60.   * If you modify the code, SAY SO! I don't want to be blamed for your
  61.     mistakes :)
  62.  
  63.   + This is not a real requirement but I would appreciate if you mail me
  64.     a note telling me you use this, or hate it :) This enables me to
  65.     mail updates.
  66.     
  67. System Requirements
  68. ===================
  69.   * IBM PC compatable 
  70.   * MSDOS 3.2 though 6.2 EXCEPT 4.x (see below).
  71.   * serial port
  72.   * 30K free memory
  73.  
  74.   The RCLIENT module can ONLY be used with MSDOS 3.2 through 6.2
  75. EXCEPT 4.x. It has been tested with MS Windows 3.1 and Desqview 2.4
  76. and can be run either inside a s window, or before Windows or Desqview
  77. is loaded, in which case the remote drives are available to all windows.
  78.  
  79.   Caveat: If this is loaded before windows, only one window at a time
  80.     should access the remote drive or all hell breaks loose.
  81.  
  82.   RCLIENT is NOT COMPATABLE with Windows NT 3.0 and may not be compatable
  83. with OS/2.
  84.  
  85.   The RSERVER module can be run in either of two states. If it is to be
  86. run on a computer running only DOS, then it runs in an internal multi-
  87. tasking state. If it is to be run under MS-Windows or Desqview, the
  88. internal multi-tasking must be disabled, and it must be run in a dedicated
  89. window, which causes a slight decrease in performance, but not much.
  90.   
  91.   RSERVER running withouth multi-tasking should be compatable with any
  92. multi tasking operating system that can run DOS programs. It has been
  93. tested with Window NT 3.0, Windows 3.1, and Desqview.
  94.  
  95.   Caveat: RSERVER is totally incompatable with Windows 3.1. If someone
  96.     does get it to work, please let me know! It looks like it will only
  97.     work if rewritten to be a VxD.
  98.     
  99. Programs
  100. ========
  101.   RSERVER  --- server TSR / program
  102.   RCLIENT  --- client TSR program
  103.   RDRIVE   --- client : drive mapping
  104.   RSTATUS  --- client/server : display status
  105.   
  106.  
  107. Concept
  108. =======
  109.   +---------+         +---------+
  110.   |         |         |         |
  111.   | RCLIENT |  ---->  | RSERVER |
  112.   |         |         |         |
  113.   +---------+         +---------+
  114.  
  115.  
  116.  RSERVER makes its resources available to RCLIENT in a way that is
  117. as transparent as possible. This is accomplished by loading a small TSR
  118. which allows the two machines to talk via the serial ports.
  119.  
  120. Once the two machines are connected, RCLIENT can access the RSERVERs disk
  121. drives (floppy, hard, even CDROM).
  122.   
  123. Setup
  124. =====
  125.   1. Add the line:
  126.        lastdrive = Z
  127.      to your config.sys. 
  128.   2. Load the program SHARE.EXE. (server only)
  129.   2. Connect the two machines with a NULL modem
  130.   3. Run the prorgam "RSERVER" on one machine, and "RCLIENT" on the other.
  131.  
  132. Quick Example:
  133.   If the machine running RSERVER will only be used to run DOS programs,
  134.   type:
  135.     RSERVER
  136.   On the other machine, execute:
  137.     RCLIENT
  138.     RDRIVE /local=z /remote=c
  139.   Now if you do a "dir z:", you should see the root directory on the server
  140.   drive C.
  141.  
  142. Commands
  143. ========
  144.   RCLIENT {/speed=#} {/com#} {/port=n} {/irq=i} {/intno=x} {/remove}
  145.   RSERVER {/speed=#} {/com#} {/port=n} {/irq=i} {/intno=x} 
  146.           {/nobackground} {/remove}
  147.   
  148.     Load the CLIENT or SERVER module.
  149.  
  150.     speed : 
  151.       Set communication speed. This defaults to 19,200 bps. It must be
  152.       set the same for both machines to communicate. It can be any
  153.       number which divides 115200, including 115200.
  154.       Typical values are:
  155.       115200, 57400, 38400, 28800, 19200, 14400, 9600, 4800, 2400, 
  156.       1200, 600, 300.
  157.       Depending on machine speed for the SLOWEST of the two machines,
  158.       115200 seems be good for a 10MHz 80286, and 23040 seems good
  159.       for an 8086.
  160.         If an invalid number is entered, the next lower divisor is taken,
  161.       and the actual communication speed being used is reported.
  162.     For example, if you enter 40000, 38400 is used.
  163.       
  164.     com# : # is 1,2,3 or 4
  165.     Use serial port [#] for transfer.  The port address will be read
  166.       from the BIOS data area, and the irq will default to the following:
  167.       
  168.                 standard    
  169.            #   BDA   values  irq
  170.           -----------------------
  171.            1  40:00   03f8    0c
  172.            2  40:02   02f8    0b
  173.            3  40:04   03e8    0c
  174.            4  40:06   02e8    0b
  175.         
  176.     port = n
  177.         Use this to override the default port base address. This should not
  178.       be necessary unless your serial port is configurable, and you have
  179.       strayed from the defaults.
  180.       n is a HEXADECIMAL number defining the new base address.
  181.       
  182.     irq = i
  183.         Use this to override the default IRQ number.  This should not be
  184.       necessary unless your serial port is configurable and you have strayed
  185.       from the defaults.
  186.       n is a HEXADECIMAL number.
  187.  
  188.     nobackground
  189.         This is used only by RSERVER, and determines the running state
  190.       for the server. If the server is running in a window of a a multi-
  191.       tasking program such as MS-WINDOWS or DesqView, this option MUST BE 
  192.       selected, otherwise it should not be used.
  193.       
  194.     remove
  195.       Remove the TSR from memory.
  196.       
  197.           ------------------------------------------------------------
  198.  
  199.   RDRIVE {/local=a} {/remote=b} {/remove}
  200.   
  201.     Run only from the CLIENT machine.
  202.     Connect CLIENT drive A to SERVER drive B
  203.     
  204.     Note:
  205.       If the CLIENT connects to a SERVER floppy drive, the SERVER
  206.     will slow noticeably whenever the floppy drive is active. This
  207.     is due to the two second floppy startup time and cannot easily
  208.     be avoided.
  209.  
  210.       If RDRIVE appears with no arguments, it will show all currently
  211.     active connections.
  212.  
  213.